package com.rockcent.mall.lib.dto;

import com.rockcent.common.domain.DtoEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;

/**
 * Created by DK on 16/11/10.
 */
public class SettlementRecordDto extends DtoEntity {

    /**
     * 平台ID
     */
    private Long mallId;

    /**
     * 商家ID
     */
    private Long merchantId;

    /**
     * 购买者ID
     */
    private Long buyerId;

    /**
     * 分享者ID
     */
    private Long sharerId;

    /**
     * 产品ID
     */
    private Long productId;

    /**
     * 平台订单号
     */
    private String mallOrderNum;

    /**
     * 商家订单号
     */
    private String merchantOrderNum;

    /**
     * 结算金额
     */
    private Double settleAmount = 0D;

    /**
     * 平台服务费
     */
    private Double serveFee = 0D;

    /**
     * 结算产品数量
     */
    private Long settleNum;

    /**
     * 分销佣金
     */
    private Double resellFee = 0D;

    /**
     * 分享者返利
     */
    private Double shareFee = 0D;

    /**
     * 商家名称
     */
    private String merchantName;

    /**
     * 购买者名称
     */
    private String buyerName;

    /**
     * 结算订单来源 MARKET("实物商品"), SELF("自由渠道"), SHARE("粉丝分享")
     */
    private String orderSource;

    //开始时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String beginDate;

    //结束时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String endDate;

    /**
     * 产品名称/编号
     */
    private String keyword;

    /**
     * 产品类型GOODS("商品"),SERVICE("服务")
     */
    private String productType;

    /**
     * 是否支持过期退
     */
    private Boolean refundable;

    /**
     * 产品来源
     */
    private String productSource;

    /**
     * 售出数
     */
    private Long buyCount;

    //产品是否可退
    private boolean refund;

    //标准价格(原价)
    private Double productBasePrice = 0D;

    //产品名称
    private String productName;

    //售价
    private Double productSellPrice = 0D;

    //平台服务费比率
    private String mallServiceFeeRates;

    //购买者
    private String customerName;

    public Long getMallId() {
        return mallId;
    }

    public void setMallId(Long mallId) {
        this.mallId = mallId;
    }

    public Long getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    public Long getBuyerId() {
        return buyerId;
    }

    public void setBuyerId(Long buyerId) {
        this.buyerId = buyerId;
    }

    public Long getSharerId() {
        return sharerId;
    }

    public void setSharerId(Long sharerId) {
        this.sharerId = sharerId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getMallOrderNum() {
        return mallOrderNum;
    }

    public void setMallOrderNum(String mallOrderNum) {
        this.mallOrderNum = mallOrderNum;
    }

    public Double getSettleAmount() {
        return settleAmount;
    }

    public void setSettleAmount(Double settleAmount) {
        this.settleAmount = settleAmount;
    }

    public Double getServeFee() {
        return serveFee;
    }

    public void setServeFee(Double serveFee) {
        this.serveFee = serveFee;
    }

    public Long getSettleNum() {
        return settleNum;
    }

    public void setSettleNum(Long settleNum) {
        this.settleNum = settleNum;
    }

    public Double getResellFee() {
        return resellFee;
    }

    public void setResellFee(Double resellFee) {
        this.resellFee = resellFee;
    }

    public Double getShareFee() {
        return shareFee;
    }

    public void setShareFee(Double shareFee) {
        this.shareFee = shareFee;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getOrderSource() {
        return orderSource;
    }

    public void setOrderSource(String orderSource) {
        this.orderSource = orderSource;
    }

    public String getMerchantOrderNum() {
        return merchantOrderNum;
    }

    public void setMerchantOrderNum(String merchantOrderNum) {
        this.merchantOrderNum = merchantOrderNum;
    }

    public String getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(String beginDate) {
        this.beginDate = beginDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public Boolean getRefundable() {
        return refundable;
    }

    public void setRefundable(Boolean refundable) {
        this.refundable = refundable;
    }

    public String getProductSource() {
        return productSource;
    }

    public void setProductSource(String productSource) {
        this.productSource = productSource;
    }

    public Long getBuyCount() {
        return buyCount;
    }

    public void setBuyCount(Long buyCount) {
        this.buyCount = buyCount;
    }

    public boolean isRefund() {
        return refund;
    }

    public void setRefund(boolean refund) {
        this.refund = refund;
    }

    public Double getProductBasePrice() {
        return productBasePrice;
    }

    public void setProductBasePrice(Double productBasePrice) {
        this.productBasePrice = productBasePrice;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public Double getProductSellPrice() {
        return productSellPrice;
    }

    public void setProductSellPrice(Double productSellPrice) {
        this.productSellPrice = productSellPrice;
    }

    public String getMallServiceFeeRates() {
        return mallServiceFeeRates;
    }

    public void setMallServiceFeeRates(String mallServiceFeeRates) {
        this.mallServiceFeeRates = mallServiceFeeRates;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    @Override
    public String toString() {
        return "SettlementRecordDto{" +
                "mallId=" + mallId +
                ", merchantId=" + merchantId +
                ", buyerId=" + buyerId +
                ", sharerId=" + sharerId +
                ", productId=" + productId +
                ", mallOrderNum='" + mallOrderNum + '\'' +
                ", merchantOrderNum='" + merchantOrderNum + '\'' +
                ", settleAmount=" + settleAmount +
                ", serveFee=" + serveFee +
                ", settleNum=" + settleNum +
                ", resellFee=" + resellFee +
                ", shareFee=" + shareFee +
                ", merchantName='" + merchantName + '\'' +
                ", buyerName='" + buyerName + '\'' +
                ", orderSource='" + orderSource + '\'' +
                ", beginDate='" + beginDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", keyword='" + keyword + '\'' +
                ", productType='" + productType + '\'' +
                ", refundable=" + refundable +
                ", productSource='" + productSource + '\'' +
                ", buyCount=" + buyCount +
                ", refund=" + refund +
                ", productBasePrice=" + productBasePrice +
                ", productName='" + productName + '\'' +
                ", productSellPrice=" + productSellPrice +
                ", mallServiceFeeRates='" + mallServiceFeeRates + '\'' +
                ", customerName='" + customerName + '\'' +
                '}';
    }
}
